package com.wtwd.device.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wtwd.device.model.entity.HealthTypeContent;

import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author mjy
 * @since 2023-08-16
 */
public interface HealthTypeContentService extends IService<HealthTypeContent> {


    /**
     * healthTypeContent
     * key由
     * 前缀+contentTypeId+_+贴士主键id构成
     */
    String HEATH_CONTENT_KEY_PREFIX = "healthTypeContent_";

    /**
     * 根据健康类型id删除类容
     * 同时删除缓存key值
     * 删除文件
     *
     * @param typeId
     * @return
     */
    boolean deleteByTypeId(Integer typeId);

    /**
     * 根据id分页查询
     *
     * @param page
     * @param typeId
     * @return
     */
    Page queryPageByTypeId(Page<HealthTypeContent> page, Integer typeId);

    /**
     * 根据健康类型获取健康类容
     *
     * @param typeId
     * @return
     */
    List<HealthTypeContent> getHealthTypeContentByTypeId(Integer typeId);


    /**
     * 获取健康类型的缓存keys集合
     *
     * @param TypeId
     * @return
     */
    List<String> getHealthTypeContentCacheKeysByTypeId(Integer TypeId);

    /**
     * 添加健康贴士
     * <p>
     * 必填字段
     * 1.贴士内容
     * 2.贴士类型id
     *
     * @param healthTypeContent
     * @return
     */
    boolean insert(HealthTypeContent healthTypeContent) throws Exception;

    /**
     * 获取健康内容的缓存key值
     *
     * @param healthTypeId
     * @param healthTypeContentId
     * @return
     */
    String getCacheKey(Integer healthTypeId, Integer healthTypeContentId);

    /**
     * 更新贴士
     * 1.覆盖缓存
     * 2.更新健康内容
     *
     * @param healthTypeContent
     * @return
     */
    boolean updateHealthTypeContentById(HealthTypeContent healthTypeContent);

    /**
     * 删除贴士时，同步删除缓存
     *
     * @param id
     * @return
     */
    boolean deleteById(Integer id);

    /**
     * 根据贴士主键id获取贴士
     *
     * @param id
     * @return
     */
    HealthTypeContent getHealthTypeContentById(Integer id);
}
